Readonly Properties এর Syntax এবং উদাহরণ

Computer Programming - পিএইচপি (PHP 8) - Readonly Properties (PHP 8.1+)
164

PHP 8.1 এ Readonly Properties ফিচারটি চালু করা হয়েছে, যা একটি নতুন ধরনের প্রপার্টি সংজ্ঞায়িত করার সুযোগ দেয়, যেগুলোর মান কেবলমাত্র অবজেক্ট তৈরির সময় বা কনস্ট্রাকটরের মাধ্যমে সেট করা যেতে পারে এবং পরে তা পরিবর্তন করা সম্ভব নয়। এই ধরনের প্রপার্টিগুলি কেবল একবার সেট করা যায় এবং এর পরবর্তীতে মান পরিবর্তন করা যাবে না। এটি ডেটা ইনটেগ্রিটি এবং নিরাপত্তা বজায় রাখতে সহায়ক।

Readonly Properties এর Syntax:

class ClassName {
    public readonly Type $property;

    public function __construct(Type $property) {
        $this->property = $property;
    }
}

এখানে:

  • readonly কীওয়ার্ডটি প্রোপার্টির আগে ব্যবহার করা হয়।
  • প্রপার্টিটি কেবল কনস্ট্রাক্টর বা প্রথম মান সেটিংয়ের সময় সেট করা যায়, পরে এটি পরিবর্তন করা যাবে না।

Readonly Properties এর উদাহরণ:

1. Basic Example:

<?php

class User {
    public readonly string $name;
    public readonly int $age;

    public function __construct(string $name, int $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$user = new User("John Doe", 30);

echo $user->name; // Output: John Doe
echo $user->age;  // Output: 30

// Attempting to change readonly properties will cause an error
// $user->name = "Jane Doe";  // Error: Cannot modify readonly property User::$name

?>

এখানে, name এবং age প্রপার্টিগুলি readonly হিসেবে সংজ্ঞায়িত হয়েছে, তাই তাদের মান কেবল কনস্ট্রাকটরের মাধ্যমে একবার সেট করা যায় এবং পরে পরিবর্তন করা যায় না।

2. Readonly Properties with Default Values:

<?php

class Product {
    public readonly string $productName;
    public readonly float $price;

    // Default constructor to initialize readonly properties
    public function __construct(string $productName, float $price) {
        $this->productName = $productName;
        $this->price = $price;
    }
}

$product = new Product("Laptop", 999.99);

echo $product->productName;  // Output: Laptop
echo $product->price;        // Output: 999.99

// Attempting to change readonly properties will cause an error
// $product->productName = "Smartphone";  // Error: Cannot modify readonly property Product::$productName

?>

এখানে, productName এবং price প্রপার্টিগুলি readonly হিসেবে সংজ্ঞায়িত এবং প্রথমবারে কনস্ট্রাকটরের মাধ্যমে তাদের মান সেট করা হয়েছে।

3. Readonly Properties with Static Values:

<?php

class Configuration {
    public readonly string $apiUrl;
    public readonly int $timeout;

    // Static constructor to initialize readonly properties
    public function __construct(string $apiUrl, int $timeout) {
        $this->apiUrl = $apiUrl;
        $this->timeout = $timeout;
    }
}

$config = new Configuration("https://api.example.com", 30);

echo $config->apiUrl;   // Output: https://api.example.com
echo $config->timeout;  // Output: 30

// Attempting to modify readonly properties will cause an error
// $config->apiUrl = "https://api.newurl.com";  // Error: Cannot modify readonly property Configuration::$apiUrl

?>

এখানে, readonly প্রপার্টি apiUrl এবং timeout কনস্ট্রাকটর দিয়ে সেট করা হয়েছে এবং এগুলোর মান পরে পরিবর্তন করা যাবে না।


Readonly Properties এর সুবিধা:

  1. ডেটা নিরাপত্তা: একবার প্রপার্টি সেট করার পর, সেটি পরিবর্তনযোগ্য নয়, ফলে ডেটার নিরাপত্তা বৃদ্ধি পায়।
  2. এনক্যাপসুলেশন: অবজেক্টের ভিতরের ডেটাকে কেবলমাত্র নির্দিষ্ট পদ্ধতিতে অ্যাক্সেস এবং পরিবর্তন করা যায়, যা কোডের ম্যানিপুলেশন কমায়।
  3. ক্লিন কোড: যখন আপনি জানেন যে একটি প্রপার্টির মান কখনও পরিবর্তিত হবে না, তখন কোড আরও পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য হয়।

Readonly Properties এর সীমাবদ্ধতা:

  1. এগুলি শুধুমাত্র অবজেক্ট ইনস্ট্যান্সের জন্য: Readonly প্রপার্টিগুলি কেবলমাত্র অবজেক্ট ইনস্ট্যান্সের জন্য প্রযোজ্য, এবং স্ট্যাটিক প্রপার্টির জন্য এটি ব্যবহার করা যায় না।
  2. কেবল একবার সেট করা যায়: একবার যদি প্রপার্টির মান কনস্ট্রাকটরের মাধ্যমে সেট করা হয়, তবে পরে সেটি আর পরিবর্তন করা যায় না।

উপসংহার:

PHP 8.1 এ Readonly Properties একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা ডেটা সুরক্ষা এবং কোডের পরিস্কারতা নিশ্চিত করতে সহায়ক। একবার একটি প্রপার্টি কনস্ট্রাকটরের মাধ্যমে সেট করা হলে, তার মান পরিবর্তন করা যাবে না, যা ডেটার অ্যাক্সেস এবং পরিবর্তন নিয়ন্ত্রণ করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...